## Что было сделано
- Добавлены поля **_id_** и **_sumpower_**. Поле **_id_**
по логике должно быть уникальным идентификатором для каждого объекта
**IterablePharmacy**. Поле **_sumpower_** обозначает суммарную силу компонентов
лекарства;
- Переопределены методы **_equals()_** и **_hashCode()_**
класса **Object** в классе **IterablePharmacy**;
- Переопределён метод **compareTo()** в классе
**IterablePharmacy**. В нём объект типа _IterablePharmacy_
сравниваются по суммарной силе компонентов **_sumpower_**;

## Возникшие вопросы
В классе **IterablePharmacy** есть два закомментированных
переопределения метода **_equals()_**. Первый был написан мной,
а второй предложила Idea. В целом, отличия лишь в этой строчке:
`return this.components == ((IterablePharmacy) o).components;`
и
`return Objects.equals(components, that.components);`
В первом случае возврат работает некорректно и у одинаковых объектов
выводит **false**, а во втором случае - **true** и мне непонятно почему.